当正常上传温度时,最后一次上传时间需要和温度上传的时间保持一致

FFIB 3 years ago
parent
commit
3bae3b66b9
1 changed files with 8 additions and 7 deletions
  1. 8 7
      api/eqpt_views.py

+ 8 - 7
api/eqpt_views.py

@@ -218,19 +218,20 @@ def get_screen_data(point=None, point_id=None):
218 218
         point_measure_window=point.previous_measure_window,
219 219
         macid__in=macids,
220 220
         status=True,
221
-    ).values('macid', 'temperature')
222
-    logs = {log.get('macid'): log.get('temperature') or get_old_temperature(point.point_id, log.get('macid')) for log in logs}
221
+    ).values('macid', 'temperature', 'updated_at')
222
+    temperature_logs = {log.get('macid'): log.get('temperature') or get_old_temperature(point.point_id, log.get('macid')) for log in logs}
223
+    time_logs = {log.get('macid'): tc.local_string(utc_dt=log.get('updated_at'), format='%m-%d %H:%M') for log in logs}
223 224
 
224 225
     ipuis = IsolationPointUserInfo.objects.filter(point_id=point.point_id, status=True).values('pk', 'fields', 'observed_days')
225 226
     ipuis = {info.get('pk'): {'fields': info.get('fields'), 'observed_days': info.get('observed_days')} for info in ipuis}
226 227
 
227 228
     total_active_eqpt_num = eqpts.count()
228
-    has_upload_temperature_num = len(logs)
229
-    fever_num = len([1 for temperature in logs.values() if temperature > settings.FEVER_TEMPERATURE])
229
+    has_upload_temperature_num = len(temperature_logs)
230
+    fever_num = len([1 for temperature in temperature_logs.values() if temperature > settings.FEVER_TEMPERATURE])
230 231
 
231 232
     eqpts = [{**eqpt.screen_data, **{
232
-        'has_upload': eqpt.macid in logs,
233
-        'temperature': logs.get(eqpt.macid, 0),
233
+        'has_upload': eqpt.macid in temperature_logs,
234
+        'temperature': temperature_logs.get(eqpt.macid, 0),
234 235
         'observed_days': ipuis.get(eqpt.ipui_pk, {}).get('observed_days', 0),
235 236
     }, **{field.get('key', ''): field.get('value', '') for field in ipuis.get(eqpt.ipui_pk, {}).get('fields', {})}} for eqpt in eqpts]
236 237
     reminds = [{
@@ -257,7 +258,7 @@ def get_screen_data(point=None, point_id=None):
257 258
         'age': eqpt.get('age', ''),
258 259
         'temperature': eqpt.get('temperature', ''),
259 260
         'status': '已上报' if eqpt.get('temperature') else '未上报',
260
-        'last_report_time': eqpt.get('last_submit_at', ''),
261
+        'last_report_time': time_logs.get(eqpt.macid) if eqpt.get('temperature') else eqpt.get('last_submit_at', ''),
261 262
         'observed_days': eqpt.get('observed_days', 0),
262 263
     } for eqpt in eqpts]
263 264